// pages/welcome.js
const util = require('../../utils/util.js')
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    hasAuthSetting: true,
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        app.globalData.loginCode = res.code;
      }
    })

    /**
     *  获取用户信息
     */
    wx.getSetting({
      success : (res) => {
        if (res.authSetting['scope.userInfo']) {
          //已经授权过，隐藏开始按钮，延迟1秒直接进入主页
          //拿取用户信息
          wx.getUserInfo({
            success: res => {
              app.globalData.userInfo = res.userInfo
              this.requestFollowInfo(res.encryptedData, res.iv)
            }
          })
          setTimeout(this.gotoHomePage,1000);
        }
        else{
          // 在没有 open-type=getUserInfo 版本的兼容处理
          // 低版本wx.getUserInfo会主动拉起授权弹窗
          this.setData({
            hasAuthSetting: false
          });
          if (!this.data.canIUse)
          {
            wx.getUserInfo({
              success: res => {
                app.globalData.userInfo = res.userInfo
                this.requestFollowInfo(res.encryptedData, res.iv)
                //拿到授权回调
                this.gotoHomePage();
              },
              fail: res =>{
                //授权失败
                wx.showModal({
                  title: '提示',
                  content: '未授权用户将无法使用推送功能',
                  showCancel: false,
                  success: (res) => {
                    if (res.confirm) {
                      this.gotoHomePage();
                    }
                  }
                })
              }
            })
          }
        }
      }
    })
  },

  //跳转首页
  gotoHomePage : function(){
    wx.switchTab({
      url: '../home/home',
    })
  },

  //点击开始请求授权的回调
  onGetUserInfo: function (e) {
    console.log(e);
    if (e.detail.userInfo)
    {
      app.globalData.userInfo = e.detail.userInfo
      this.requestFollowInfo(e.detail.encryptedData, e.detail.iv)
      this.gotoHomePage();
    }
    else{
      //授权失败
      wx.showModal({
        title: '提示',
        content: '未授权用户将无法使用推送功能',
        showCancel: false,
        success: (res) => {
          if (res.confirm) {
            this.gotoHomePage();
          }
        }
      })
    }
  },

  requestFollowInfo: function (encryptedData, iv) {
    //拿不到授权的不请求收藏信息
    if (!this.data.hasAuthSetting)
      return;
    wx.request({
      url: util.url + 'user_login',
      data: {
        loginCode: app.globalData.loginCode,
        encryptedData: encryptedData,
        iv: iv
      },
      success: res => {
        console.log("请求用户信息");
        console.log(res);
        app.globalData.unionId = res.data;
        app.onRequestFollowInfo();
      }
    })
  }

})